import BST from '../../../src/datastructure/tree/BST'

const bst = new BST()
bst.add(5)
bst.add(6)
bst.add(3)
bst.add(4)
bst.add(2)

/*
         5
       /    |
      3       6
     / |
    2   4
 */

console.log(bst.contains(4))
console.log(bst.contains(0))

console.log('前序遍历')
bst.preOrder() // 5 3 2 4 6

console.log('中序遍历') // 对于BST是顺序结果
bst.inOrder() // 2 3 4 5 6

console.log('后序遍历') // 先处理孩子，再处理父亲
bst.postOrder() // 2 4 3 6 5

console.log('前序遍历非递归')
bst.preOrderNoRecursive()

console.log('层级遍历')
bst.levelOrder()

// 获取最值
console.log('最值:', bst.getMin(), bst.getMax())

// 测试删除值
/* const result = []
while (bst.size) {
  // result.push(bst.removeMin())
  result.push(bst.removeMax())
}
console.log('removeMin:', result) */

// 删除任意节点
bst.remove(3)
console.log(bst.root)
